package com.dyna.digit.process.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dyna.digit.process.domain.entity.DigitProject;
import com.dyna.digit.process.domain.entity.DigitUnitInfo;
import com.dyna.digit.process.domain.query.DigitProjQuery;
import com.dyna.digit.process.domain.resp.DigitOverProjResp;
import com.dyna.digit.process.domain.resp.DigitProjectPage;
import com.dyna.domain.resp.PageResult;

import java.util.List;

/**
* @author Admin
* @description 针对表【digit_project】的数据库操作Service
* @createDate 2023-11-11 16:34:20
*/
public interface DigitProjectService extends IService<DigitProject> {

    /**
     * 查询项目列表
     * @param digitProjQuery 查询条件
     * @return PageResult<DigitProjectPage>
     */
    PageResult<DigitProjectPage> getPageList(DigitProjQuery digitProjQuery);

    /**
     * 单位列表
     * @param type 单位类型
     * @return List<DigitUnitInfo>
     */
    List<DigitUnitInfo> getUnitListByType(String type);

    /**
     * 关联历年项目
     * @return List<DigitOverProjResp>
     */
    List<DigitOverProjResp> getOverProjList();

    /**
     * 测试项目列表数据库并发量
     * @param digitProjQuery query
     * @return List<DigitProjectPage>
     */
    List<DigitProjectPage> testDigitPageQPS(DigitProjQuery digitProjQuery);

    /**
     * 测试连表count查询并发量
     * @param digitProjQuery 查询条件
     * @return count
     */
    Long testDigitCountQPS(DigitProjQuery digitProjQuery);

    /**
     * 开始申报项目
     * @param projectId 项目id
     * @return Boolean
     */
    Boolean startDeclare(Integer projectId);

    /**
     * 详情
     * @param id id
     * @return DigitProject
     */
    DigitProject detail(Integer id);

}
